home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / sbin / ufw < prev    next >
Text File  |  2009-09-23  |  4KB  |  127 lines

  1. #! /usr/bin/python
  2. #
  3. # ufw: front-end for Linux firewalling (cli)
  4. #
  5. # Copyright 2008-2009 Canonical Ltd.
  6. #
  7. #    This program is free software: you can redistribute it and/or modify
  8. #    it under the terms of the GNU General Public License version 3,
  9. #    as published by the Free Software Foundation.
  10. #
  11. #    This program is distributed in the hope that it will be useful,
  12. #    but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. #    GNU General Public License for more details.
  15. #
  16. #    You should have received a copy of the GNU General Public License
  17. #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18. #
  19.  
  20. import os
  21. import re
  22. import sys
  23. import warnings
  24.  
  25. try:
  26.     import ufw.frontend
  27.     from ufw.common import UFWError
  28.     from ufw.util import error, warn, msg
  29. except:
  30.     print >> sys.stderr, "ERROR: Could not find required libraries. Aborting."
  31.     sys.exit(1)
  32.  
  33. import gettext
  34. gettext.install(ufw.common.programName)
  35.  
  36. version = "0.29-4ubuntu1"
  37.  
  38. # Internationalization
  39. gettext.bindtextdomain(ufw.common.programName, \
  40.                        os.path.join(ufw.common.trans_dir, 'messages'))
  41. gettext.textdomain(ufw.common.programName)
  42. _ = gettext.gettext
  43.  
  44. if sys.version_info[0] < 2 or \
  45.    (sys.version_info[0] == 2 and sys.version_info[1] < 5):
  46.     msg(ufw.common.programName + _(": Need at least python 2.5)\n"), \
  47.         sys.stderr)
  48.     sys.exit(1)
  49.  
  50. if sys.version_info[0] == 2 and sys.version_info[1] < 6:
  51.     def clean_warning(message, category, filename, lineno, file=None):
  52.         warn(message)
  53. else:
  54.     def clean_warning(message, category, filename, lineno, file=None, line=""):
  55.         warn(message)
  56.  
  57. if __name__ == "__main__":
  58.     warnings.showwarning = clean_warning
  59.     action = ""
  60.     rule = ""
  61.     dryrun = False
  62.     app_action = False
  63.     profile = ""
  64.  
  65.     if len(sys.argv) > 1 and sys.argv[1].lower() == "app":
  66.         try:
  67.         (action, profile, dryrun) = \
  68.                 ufw.frontend.parse_application_command(sys.argv)
  69.             app_action = True
  70.         except ValueError:
  71.             msg(ufw.frontend.get_command_help())
  72.             sys.exit(1)
  73.         except UFWError, e:
  74.             error(e.value)
  75.         except Exception:
  76.             raise
  77.     else:
  78.         try:
  79.             (action, rule, ip_version, dryrun) = \
  80.                 ufw.frontend.parse_command(sys.argv)
  81.         except ValueError:
  82.             msg(ufw.frontend.get_command_help())
  83.             sys.exit(1)
  84.         except UFWError, e:
  85.             error(e.value)
  86.         except Exception:
  87.             raise
  88.  
  89.     if action == "help" or action == "--help":
  90.         msg(ufw.frontend.get_command_help())
  91.         sys.exit(0)
  92.     elif action == "version" or action == "--version":
  93.         msg(ufw.common.programName + " " + version)
  94.         msg("Copyright 2008-2009 Canonical Ltd.")
  95.         sys.exit(0)
  96.  
  97.     try:
  98.         ui = ufw.frontend.UFWFrontend(dryrun)
  99.     except UFWError, e:
  100.         error(e.value)
  101.     except Exception:
  102.         raise
  103.  
  104.     res = ""
  105.     try:
  106.         if app_action:
  107.             res = ui.do_application_action(action, profile)
  108.         else:
  109.             bailout = False
  110.             if action == "enable" and not ui.continue_under_ssh():
  111.                 res = _("Aborted")
  112.                 bailout = True
  113.  
  114.             if not bailout:
  115.                 res = ui.do_action(action, rule, ip_version)
  116.  
  117.         if res != "":
  118.             msg(res)
  119.  
  120.     except UFWError, e:
  121.         error(e.value)
  122.     except Exception:
  123.         raise
  124.  
  125.     sys.exit(0)
  126.  
  127.